The present invention relates in general to temporal antialiasing techniques for computer graphics systems, and in particular to multisampling techniques for temporal antialiasing.
Display devices, such as monitor screens, produce images using an array of small-size picture elements (“pixels”), each having a solid color. The color of each pixel is independently controllable so that an arbitrary image can be produced on the display device. In many instances, pixel color is determined using a graphics processing system that receives image data to be rendered from an application program. The image data generally includes position, size, and color information for a number of simple polygons (e.g., triangles) referred to as “primitives,” of which the image is composed. The graphics processing system rasterizes the image data by sampling the primitives at a number of predetermined sample locations (e.g., a point corresponding to the center of each pixel), thereby generating a shading value (also referred to as a “color value”) for each pixel. These shading values are stored in a frame buffer that is periodically scanned out to a display device, thereby producing a viewable image.
In general, the shading value for a pixel is determined according to the color of a primitive that covers the pixel. Shading values can be determined using numerous well-known techniques, such as constant shading, interpolation between shading values associated with each vertex, Gouraud shading, and Phong shading.
Many existing systems determine color and coverage for a pixel based on the location of the primitives at a particular instant. In animation, this results in rasterized images at a sequence of instants separated by a finite frame interval. The result appears unlike a conventional motion picture in two respects. First, in each image, the moving object is in clear focus, not blurred by its motion as it would be if filmed by a camera that exposes each frame of film for a finite time. Second, the motion of the object occurs in discrete jumps, making the motion appear jerky rather than smooth. Such undesirable artifacts, generally referred to as temporal aliasing, lead to loss of realism in computer-generated animation.
Some existing systems attempt to reduce temporal aliasing by adapting supersampling techniques that have been used to reduce spatial aliasing effects (such as jagged edges) by introducing blurriness or fuzziness into computer-generated images. Supersampling for spatial antialiasing involves independently generating a number of shading samples at different sampling locations within a pixel, then blending the shading samples to produce a final color for the pixel. Temporal supersampling involves generating a shading sample for a pixel at each of a number of different intermediate times within a frame interval, then blending the sample values. Because the positions of moving objects shift relative to the pixel, each intermediate-time sample will generally have a different color value. Blending these values introduces a realistic “motion blur” effect. Such techniques have been used in software-based rendering systems, such as Pixar's RenderMan software.
However, using supersampling for both spatial and temporal antialiasing requires a large number of color computations per pixel. Computing color is computationally intensive, and repeating such computations numerous times per pixel is impractical in existing real-time hardware-based rendering systems, which typically need to generate a large number of image frames per second for applications such as video games.
It would therefore be desirable to provide temporal antialiasing techniques that are less computationally intensive than supersampling.